package com.example.housekeeping.service;

import com.example.housekeeping.pojo.dto.ServeItemAddNewDTO;
import com.example.housekeeping.pojo.dto.ServeItemUpdateDTO;
import com.example.housekeeping.pojo.entity.ServeItem;
import com.example.housekeeping.pojo.vo.ServeItemListItemVO;
import com.example.housekeeping.pojo.vo.ServeItemStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 服务内容表(ServeItem)表服务接口
 *
 * @author bob
 * @since 2023-03-20 19:36:07
 */
@Transactional
public interface ServeItemService {

    /**
     * 服务内容“是否通过”的状态文本
     */
    String PASS_TEXT[] = {"未通过", "通过"};

    /**
     * 新增数据
     *
     * @param serveItemAddNewDTO 实例对象
     * @return 实例对象
     */
    void addNew(ServeItemAddNewDTO serveItemAddNewDTO);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    void deleteById(Long id);

    /**
     * 修改数据
     *
     * @param id 主键,serveItemUpdateDTO 实例对象
     * @return 实例对象
     */
    void updateById(Long id, ServeItemUpdateDTO serveItemUpdateDTO);

    /**
     * 通过的服务内容
     *
     * @param id 通过的服务内容的id
     */
    void setPass(Long id);

    /**
     * 未通过的评论
     *
     * @param id 未通过的服务内容的id
     */
    void setNotPass(Long id);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ServeItemStandardVO getStandardById(Long id);

    /**
     * 通过查询列表数据
     *
     * @return 实例对象
     */
    List<ServeItemListItemVO> list();

    ServeItem selectByWorkerId(Long workerId);

}
